package com.cskaoyan.jdbc;

import com.cskaoyan.jdbc.util.JdbcUtil;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @ClassName JdbcDemo1
 * @Description: TODO
 * @Author 远志 zhangsong@cskaoyan.onaliyun.com
 * @Date 2023/2/6 15:00
 * @Version V1.0
 **/
public class JdbcDemo4 {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
             connection = JdbcUtil.getConnection();
            //2.发送请求、发送sql语句（实际上，数据库是一个网络应用，负责监听着3306端口号，我们需要向mysql数据库发送一条指令到达数据库所在机器的3306端口号）
            //statement对象专门用来和数据库进行sql传递的
            statement = connection.createStatement();
            //执行增删改和查询需要用两套不同的方法
            //3.数据库进行处理
            //4.将结果再次返回给我们
            resultSet = statement.executeQuery("select * from customer");
            //和iterator有一些类似，需要调用next方法之后才可以查询
            //把游标移动到最后一行结果的后面 也就是末尾
            resultSet.afterLast();
            while (resultSet.previous()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String city = resultSet.getString("city");
                System.out.println(id + " " + name + " " + city);
            }
//            while (resultSet.next()){
//                int id = resultSet.getInt("id");
//                String name = resultSet.getString("name");
//                String city = resultSet.getString("city");
//                System.out.println(id + " " + name + " " + city);
//            }
        } catch (SQLException | FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            //5.断开连接(exit)
            try {
                JdbcUtil.release(connection, statement, resultSet);
            }catch (Exception e){

            }
        }

    }
}
